草庐IT

ES 脚本

全部标签

javascript - Webpack 和以编程方式注入(inject)的内容脚本

我正在使用React和Webpack开发Chrome扩展程序。在此项目中,不同的模块将使用chrome.tabs.executeScript(null,{file:'content-script-file.js'})以编程方式注入(inject)内容脚本。这就成了问题,因为我使用Webpack来捆绑所有内容。基本上,后台脚本加载了一些模块,这些模块都配置为在特定情况下以编程方式注入(inject)内容脚本。但是,我不知道如何在捆绑的应用程序中“找到”这些内容脚本。它们从未被显式导入,只是在executeScript调用中被引用。同时contentscripts使用了React,所以需要

javascript - 混合 $q 和 ES6 promise 时测试 Angular

我遇到一个问题,我的代码混合了ES6Promises和AngularPromises,并且它在生产中工作,因为我无法编写通过的单元测试。此代码片段演示了Jasmine单元测试失败的两个实例,但代码在生产中运行良好://Anangular$qpromisevarf1=function(){return$q(function(resolve,reject){resolve('Thisisfunction1!');});}//AnES6promisevarf2=function(){returnnewPromise(function(resolve,reject){resolve('This

javascript - 'require' 与 'import' es6 有何不同?

我遇到了一种我无法解释的行为。根据使用import或require,此测试成功(import)或失败(require)。如果失败,我有以下错误:PhantomJS2.1.1(Windows70.0.0)immutabilityanumberisimmutableFAILEDundefinedisnotaconstructor(evaluating'expect((0,_immutable.List)([1])).toEqualImmutable((0,_immutable.List)([1]))')代码如下:import{Map,List}from'immutable';constex

javascript - 如何使用 Gulp 压缩 ES6

我对手动编写gulpfile.js比较陌生。我有一个基于Backbone和Marionette的项目,到目前为止,gulp文件如下所示:vargulp=require('gulp');var$=require('gulp-load-plugins')();varbrowserify=require('browserify');vardel=require('del');varwatchify=require('watchify');varsource=require('vinyl-source-stream');varstylish=require('jshint-stylish');

javascript - 无法动态转译 ES 模块 System.config({ transpile : 'transpile-module' })

这是我的tsconfig.js{"compilerOptions":{"experimentalDecorators":true,"emitDecoratorMetadata":true,"moduleResolution":"node","target":"es5","module":"system","noImplicitAny":false,"outDir":"built","rootDir":".","sourceMap":false},"exclude":["node_modules"]我正在使用tsc命令将我的“hello-angular.ts”转译为“hello-angu

javascript - 麻烦打印行号和 `alert` ing 长字符串变量来调试 JS 脚本 block

我需要在我的php.html页面中加入一些JS,但我很难调试。我一直在谷歌搜索,但似乎找不到如何打印行号,比如php中的__LINE__。有没有一种方法可以足够轻松地实现这一看似有用的壮举?我遇到的另一个问题是,我正在尝试调试一个不太正常的scriptblock,我需要echo,呃让alert一个很长的字符串的var。不幸的是,警告框自行关闭,大概是因为var字符串太长了。似乎没有为alert框定义参数,例如高度、宽度等,所以我尝试使用这个hack:functionalertDebug(linesToDisable){varnewLinesToDisable=newString();f

javascript - 如何锁定(或沙箱)JDK 的内置 Javascript 解释器以运行不受信任的脚本

我们有一个Java应用程序,想使用内置的Javascript解释器(javax.script.*)运行不受信任的代码然而,默认情况下,解释器允许访问任何java类。例如,脚本中的“java.lang.System.exit(0)”将关闭JVM。我相信这叫做“LiveConnect”,有关详细信息,请参阅Sun的“JavaScriptingProgrammer'sGuide”。我想以某种方式关闭脚本访问Java类的能力,即我只希望脚本能够访问我使用eval()或ScriptEngine上的put()方法。我找到了一些关于如何使用旧的独立版本的解释器(Rhino)实现此目的的文档,例如参见

javascript - IE 浏览器脚本,用于确定哪个(如果有的话)ActiveX 控件将处理特定的 MIME 类型

我试图在IE脚本(javascript或vbscript)中找出哪个ActiveX控件将处理特定的mime类型,在本例中为“image/tiff”。这在其他使用插件的浏览器中很容易做到;navigator.mimeTypes["image/tiff"].enabledPlugin.name这会返回类似的东西QuickTimePlug-inX.X.X我找到了很多示例来说明是否加载了特定的ActiveX控件,但是由于有几个可用的ActiveX控件可以处理tiff图像,我需要知道哪些(如果有的话)已注册以处理此mime类型。我试图处理的问题是QuickTime总是想将自己注册为默认的tiff

JavaScript - 内存友好的脚本

在JavaScript中是否有类似内存友好脚本的东西?我应该知道的某些原则?我问这个是因为我有一个网站,其中#div填充了大量数据,我使用原始.innerHTML=i_hold_lots_of_data;我想知道code>.innerHTML='';与C中的free()具有相同的效果吗?所以我的问题可以缩小为:在内存管理方面,是否有处理JavaScript中大字符串的最佳实践? 最佳答案 如果您想深入了解您的内存配置文件,您应该使用GoogleChrome控制台(选项卡配置文件)等工具。它显示了哪些对象使用了多少内存。一般来说,您应

javascript - ES6 模块导入和依赖管理

使用转译器已经可以使用ES6模块。最简单的方法之一是使用Browserify和Babelify。我遇到的问题是如何处理依赖管理。在过去,您只需要一些Bower依赖项。该构建会将非CDN捆绑到vendor.js并将特定文件投影到foobar.js(或其他)。因此,您只需bowerinstallfoobar--save就可以在不同的项目中使用生成的代码。如果foobar和您的新项目具有共同的依赖关系,则可以使用Bowers平面依赖关系轻松解决。现在ES6模块来了:假设我有一个使用lodash的项目foo。目录结构如下:src/js/foo.jssrc/vendor/lodash/dist/